package tree

import "fmt"

type Tree struct {
	Data  int
	Left  *Tree
	Right *Tree
}

// postOrder 后序遍历
func postOrder(tree *Tree) {
	// 空节点啥都不干
	if tree == nil {
		return
	}
	// 先遍历右子节点
	postOrder(tree.Right)
	// 打印当前数据
	fmt.Println(tree.Data)
	// 打印左子节点
	postOrder(tree.Left)

}

// inOrder 中序遍历
func inOrder(tree *Tree) {
	// 空节点啥都不干
	if tree == nil {
		return
	}
	// 打印当前数据
	fmt.Println(tree.Data)
	// 遍历左子节点
	inOrder(tree.Left)
	// 遍历右子节点
	inOrder(tree.Right)

}

func preOrder(tree *Tree) {
	// 空节点啥都不干
	if tree == nil {
		return
	}
	// 遍历左子节点
	preOrder(tree.Left)
	// 打印当前数据
	fmt.Println(tree.Data)
	// 遍历右子节点
	preOrder(tree.Right)
}
